// 引入defineStore
import { defineStore } from "pinia";
import { reactive, ref, computed } from "vue";

// 调用defineStore  defineStore接收两个值('变量名'，obj)
// export const useCountStore = defineStore('count', {
//     // state配置项  真正存储数据的地方
//     state() {
//         return {
//             sum: 6,
//             school: 'atguigu',
//             address: '宏福科技园'

//         }
//     },
//     actions:{
//         increment(val:number){
//             console.log('increment被调用了',val);
//             // 这里想要使用state中的数据 需要使用this
//             if(this.sum < 10) {
//                 this.sum += val
//             }
//         },
//         Jian(val:number){
//             console.log('Jian被调用了',val);
//             // 这里想要使用state中的数据 需要使用this
//             if(this.sum > 0) {
//                 this.sum -= val
//             }
//         }
//     },
//     getters:{
//         // getters里的方法自带一个state参数
//         BigSum(state){
//             return state.sum * 10
//         },
//         // getters里可以用this  this是state
//         upperSchool(state):string{
//             console.log('看看this',this);
//             return this.school.toUpperCase()
//         },
//         // 这里还可以使用箭头函数
//         showAddress:state=>state.address
//     }
// })

export const useCountStore = defineStore('count', () => {
    const sum = ref(1)
    const school = ref('atguigu')
    const address = ref('宏福科技园')
    function increment(val: number) {
        console.log('increment被调用了', val);
        // 这里想要使用state中的数据 需要使用this
        if (sum.value < 10) {
            sum.value += val
        }
    }
    function Jian(val: number) {
        console.log('Jian被调用了', val);
        // 这里想要使用state中的数据 需要使用this
        if (sum.value > 0) {
            sum.value -= val
        }
    }
    // 组合式写法中，getters需要使用computed来实现
    const BigSum = computed(() => sum.value * 10)
    const upperSchool = computed(() => {
        return school.value.toUpperCase()
    })
    const showAddress = computed(() => {
        return address
    })
    return { sum,school,address,increment,Jian,BigSum,upperSchool,showAddress}
})